package com.kerrykidz.sales.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.kerrykidz.sales.dao.model.PosOrderEntity;
import com.kerrykidz.system.util.printReceipt.PrinterMessage;

/**
 * 
 * @Description 订单、购物车、预付订单、已付款订单、未付款订单等 实体类
 * @author QUINN
 * @date 2014年8月6日上午10:44:43
 */
@Repository
public interface PosOrderEntityMapper {

	/**
	 * 
	 * @Description 根据主键查询单个订单、购物车、预付订单、已付款订单、未付款订单等
	 * @param pk
	 *            主键
	 * @return
	 * @author QUINN
	 * @date 2014年8月6日上午10:45:16
	 */
	PosOrderEntity findOrderByPk(@Param("pk") String pk);

	/**
	 * 
	 * @Description 插入数据
	 * @param entity
	 * @return
	 * @author QUINN
	 * @date 2014年8月6日下午3:00:36
	 */
	int insert(PosOrderEntity entity);

	/**
	 * 
	 * @Description 分页查询
	 * @param order
	 * @return
	 * @author QUINN
	 * @date 2014年8月8日下午2:00:51
	 */
	List<PosOrderEntity> paginate(PosOrderEntity order);

	/**
	 * 
	 * @Description 修改订单
	 * @param order
	 * @return
	 * @author QUINN
	 * @date 2014年8月11日下午5:09:38
	 */
	int updateByPrimaryKeySelective(PosOrderEntity order);

	/**
	 * 
	 * @Description 完成支付更改一些状态
	 * @param orderId
	 * @return
	 * @author QUINN
	 * @date 2014年8月11日下午5:12:32
	 */
	int finishPayment(@Param("orderId") String orderId);

	/**
	 * 
	 * @Description 预付订单
	 * @param orderId
	 * @param payMoney
	 * @return
	 * @author QUINN
	 * @date 2014年8月21日下午1:38:15
	 */
	int repayPayment(@Param("orderId") String orderId, @Param("payMoney") Double payMoney);

	/**
	 * 
	 * @Description 根据派对id查询订单
	 * @param parresId
	 * @return
	 * @author QUINN
	 * @date 2014年8月21日下午3:23:22
	 */
	List<PosOrderEntity> findByParresId(@Param("parresId") String parresId);

	/**
	 * 
	 * @Description 根据条件查询订单
	 * @param order
	 * @return
	 * @author QUINN
	 * @date 2014年8月21日下午5:37:32
	 */
	PosOrderEntity findByCondition(PosOrderEntity order);
	
	/**
	 * 
	 * @Description 根据属性查找订单集合
	 * @param order
	 * @return
	 * @author QUINN
	 * @date 2014年8月27日上午10:37:35
	 */
	List<PosOrderEntity> findCollectionByCondition(PosOrderEntity order);
	
	
	/**
	 * 获取打印收银详情
	 * @param pkOrderId
	 * @return
	 * @date: 2014年11月24日
	 */
	List<PrinterMessage> printOrderDetail(@Param("pkOrderId")String pkOrderId);
}